package br.gov.mi.corporativo.dominio.rhmi;

// Generated 17/11/2014 09:46:12 by Hibernate Tools 4.0.0

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Immutable;

/**
 * CursoFuncionario generated by hbm2java
 */
@Entity @Immutable
@Table(schema = "DES_RHMI", name = "CURSO_FUNCIONARIO")
public final class CursoFuncionario implements java.io.Serializable {

	/**
	 * 
	 */
	
	private static final long serialVersionUID = 1897508403207464209L;
	
	@Id
	@Column(name = "ID_CURSO_FUNCIONARIO", unique = true, nullable = false, precision = 22, scale = 0)
	private Long idCursoFuncionario;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_FUNCIONARIO", nullable = false)
	private Funcionario funcionario;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_CURSO", nullable = false)
	private Curso curso;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_CADASTRO", nullable = false, length = 7)
	private Date dtCadastro;
	
	@Column(name = "ST_REGISTRO", nullable = false, length = 1)
	private String stRegistro;
	
	@Column(name = "NR_QUANTIDADE_FALTAS", precision = 2, scale = 0)
	private Integer nrQuantidadeFaltas;
	
	@Column(name = "NR_NOTA_AVALIACAO", precision = 5)
	private BigDecimal nrNotaAvaliacao;
	
	@Column(name = "ST_DESISTENTE", length = 1)
	private String stDesistente;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_DESISTENCIA", length = 7)
	private Date dtDesistencia;

	public CursoFuncionario() {
	}

	public CursoFuncionario(Long idCursoFuncionario,
			Funcionario funcionario, Curso curso, Date dtCadastro,
			String stRegistro) {
		this.idCursoFuncionario = idCursoFuncionario;
		this.funcionario = funcionario;
		this.curso = curso;
		this.dtCadastro = dtCadastro;
		this.stRegistro = stRegistro;
	}

	public CursoFuncionario(Long idCursoFuncionario,
			Funcionario funcionario, Curso curso, Date dtCadastro,
			String stRegistro, Integer nrQuantidadeFaltas,
			BigDecimal nrNotaAvaliacao, String stDesistente,
			Date dtDesistencia) {
		this.idCursoFuncionario = idCursoFuncionario;
		this.funcionario = funcionario;
		this.curso = curso;
		this.dtCadastro = dtCadastro;
		this.stRegistro = stRegistro;
		this.nrQuantidadeFaltas = nrQuantidadeFaltas;
		this.nrNotaAvaliacao = nrNotaAvaliacao;
		this.stDesistente = stDesistente;
		this.dtDesistencia = dtDesistencia;
	}

	
	public Long getIdCursoFuncionario() {
		return this.idCursoFuncionario;
	}

	
	public Funcionario getFuncionario() {
		return this.funcionario;
	}

	
	public Curso getCurso() {
		return this.curso;
	}

	
	public Date getDtCadastro() {
		return this.dtCadastro;
	}

	
	public String getStRegistro() {
		return this.stRegistro;
	}

	
	public Integer getNrQuantidadeFaltas() {
		return this.nrQuantidadeFaltas;
	}

	
	public BigDecimal getNrNotaAvaliacao() {
		return this.nrNotaAvaliacao;
	}

	
	public String getStDesistente() {
		return this.stDesistente;
	}

	
	public Date getDtDesistencia() {
		return this.dtDesistencia;
	}

}
